/*
 * Copyright (c) 2016-2021, Hangzhou Qulian Technology Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef _QL_TYPE_H_
#define _QL_TYPE_H_

/* cSDK basic data type definitions */
typedef signed   char                   ql_int8_t;      /**<  8bit integer type */
typedef signed   short                  ql_int16_t;     /**< 16bit integer type */
typedef signed   int                    ql_int32_t;     /**< 32bit integer type */
typedef signed   long long              ql_int64_t;     /**< 64bit integer type */
typedef unsigned char                   ql_uint8_t;     /**<  8bit unsigned integer type */
typedef unsigned short                  ql_uint16_t;    /**< 16bit unsigned integer type */
typedef unsigned int                    ql_uint32_t;    /**< 32bit unsigned integer type */
typedef unsigned long long              ql_uint64_t;    /**< 64bit unsigned integer type */

typedef void 			                ql_void_t;      /**< void type */
typedef ql_uint8_t                      ql_bool_t;      /**< bool type */
typedef ql_uint8_t                      ql_byte_t;      /**< byte type */
typedef ql_int32_t                      ql_err_t;       /**< return type */
typedef ql_uint32_t                     ql_size_t;

typedef struct {
    ql_size_t len;
    ql_byte_t*  val;
    struct ql_strings_t* next;
}ql_strings_t;

#endif
